public class 字符串相加 {

    public String addStrings(String num1, String num2) {
        int n = num1.length();
        int m = num2.length();
        char[] s1 = num1.toCharArray();
        char[] s2 = num2.toCharArray();
        StringBuilder ans = new StringBuilder();
        int cur1 = n - 1; // 指向第一个字符串的尾部
        int cur2 = m - 1; // 指向第二个字符串的尾部
        int add = 0; // 进位
        while (cur1 >= 0 || cur2 >= 0) { // 如果两个都到头了停止
            int a = cur1 >= 0 ? s1[cur1] - '0' : 0; // 没到头就指向 到头就设为 0
            int b = cur2 >= 0 ? s2[cur2] - '0': 0;
            int sum = a + b + add; // 计算和
            ans.append(sum % 10); // 添加
            add = sum / 10; // 检查进位
            cur1--; // 指针后移
            cur2--;
        }
        // 判断是否有进位存在
        if (add != 0) {
            ans.append(add);
        }
        return ans.reverse().toString(); // 翻转返回
    }
}
